package cn.iocoder.yudao.module.system.convert.auth;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.system.api.oauth2.dto.Oauth2AccessTokenCheckRespDTO;
import cn.iocoder.yudao.module.system.api.oauth2.dto.Oauth2AccessTokenRespDTO;
import cn.iocoder.yudao.module.system.controller.admin.oauth2.vo.token.Oauth2AccessTokenRespVO;
import cn.iocoder.yudao.module.system.dal.dataobject.oauth2.Oauth2AccessTokenDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * oauth2令牌转换
 *
 * @author huangweidong
 * @date 2023/05/09
 */
@Mapper
public interface Oauth2TokenConvert {

    Oauth2TokenConvert INSTANCE = Mappers.getMapper(Oauth2TokenConvert.class);

    /**
     * 转换
     *
     * @param bean bean
     * @return {@code Oauth2AccessTokenCheckRespDTO}
     */
    Oauth2AccessTokenCheckRespDTO convert(Oauth2AccessTokenDO bean);

    /**
     * 转换
     *
     * @param page 分页
     * @return {@code PageResult<Oauth2AccessTokenRespVO>}
     */
    PageResult<Oauth2AccessTokenRespVO> convert(PageResult<Oauth2AccessTokenDO> page);

    /**
     * convert2
     *
     * @param bean bean
     * @return {@code Oauth2AccessTokenRespDTO}
     */
    Oauth2AccessTokenRespDTO convert2(Oauth2AccessTokenDO bean);

}
